class Name():
    name = "张萌奇"
    def names(self):
        print(self.name)

#组合
class Turtle:
    def __init__(self, x):
        self.num = x

class Fish:
    def __init__(self, y):
        self.num = y

class Pool:
    def __init__(self, x, y):
        self.x = Turtle(x)
        self.y = Fish(y)
    def print(self):
        print("有鱼%d条，乌龟%d条" % (self.x.num, self.y.num))


#继承中的关于__init__方法的重写与覆盖 通俗来讲就是不覆盖父类的__init__方法


#  1.在继承后的__init__方法里直接调用  格式为   父类名.__init(self)
class A:
    def __init__(self):
        self.a = 1

class B(A):
    def __init__(self):
        A.__init__(self)
        self.b = 2

c = B()
print(c.__dict__)
print(c.b)
print(c.a)

#  2.使用super函数 格式为  super().__init__()  不需要self
class A:
    def __init__(self):
        self.a = 1

class B(A):
    def __init__(self):
        super().__init__()
        self.b = 2

c = B()
print(c.__dict__)
print(c.b)
print(c.a)
